
#ifndef COPY_SHIFT
# define COPY_SHIFT(__s,__d,__sz) bcopy(__s,__d,__sz)__s=(char *)__s+__sz;__d=(char *)__s+__sz
#endif

size_t traverse_vector_copy(char *src, size_t count, size_t blocklen, size_t
                displacement, size_t sizetocopy,char
                *buffertocopy,size_t *sizecopied, int reset);


size_t traverse_vector_ptr(void *src, size_t count, size_t blocklen, size_t
                displacement, size_t sizerequested, void **ptr_requested, size_t
                *sizeprovided, int reset);


size_t traverse_strided_copy(void *src, size_t numd, size_t block_len, size_t
                *displacements, size_t *counts, size_t sizetocopy, size_t *sizecopied, 
                void *buffertocopy, int reset);


size_t traverse_strided_ptr(void *src, size_t numd, size_t blocklen, size_t
                *displacements, size_t *counts, size_t sizerequested, size_t
                *sizeprovided, int reset);


